package com.dormitory.management.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dormitory.management.system.entity.Loss;
import com.dormitory.management.system.req.LossPageReq;
import com.dormitory.management.system.req.LossPersonalPageReq;
import com.dormitory.management.system.req.LossSaveReq;
import com.dormitory.management.system.req.LossUpdateReq;
import com.dormitory.management.system.resp.LossResp;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * <p>
 * 遗失物品表 服务类
 * </p>
 *
 * @author
 * @since 2021-12-17
 */
public interface LossService extends IService<Loss> {

    /**
     * 添加遗失物品报单
     * @param req 插入内容
     * @return
     */
    boolean save(LossSaveReq req) ;

    /**
     * 上传图片文件
     * @param file 图片文件
     * @return
     */
    String saveFile(MultipartFile file) throws IOException;

    /**
     * 删除遗失物品报单
     * @param id 遗失物品id
     * @return
     */
    boolean delete(Long id);

    /**
     * 更新遗失物品报单信息
     * @param req 更新内容
     * @return
     */
    boolean update(LossUpdateReq req);

    /**
     * 更新遗失物品状态
     * @param id 遗失物品id
     * @return
     */
    boolean updateStatus(Long id);

    /**
     * 根据查询条件分页查询 公共显示
     * @param req 查询条件
     * @return 分页列表
     */
    IPage<LossResp> getPage(LossPageReq req);

    /**
     * 根据查询条件分页查询 私人显示
     * @param req 查询条件
     * @return 分页列表
     */
    IPage<LossResp> getPersonalPage(LossPersonalPageReq req);
}
